<?php

class Relatorio extends CI_Controller{
    
    function estaLogado(){
        $id = $this->session->userdata('id');
        if($id == null){
            redirect('membro/login');
        }
    }
    
    function dropdownFuncionalidadesTipo(){
        $this->estaLogado();
        $this->load->model('apoioModel');
        $id = $this->uri->segment(3);
        
        $funcionalidades = $this->apoioModel->dropdownFuncionalidadesDoTipo($id);
        echo '<option value="">- Selecione -</option>';
        foreach($funcionalidades as $funcionalidade){
            echo '<option value="'.$funcionalidade->id.'">'.$funcionalidade->funcionalidade.'</option>';
        }
    }
    
    function cadastrarProjeto(){
        $this->estaLogado();
        $this->load->model('apoioModel');
        $this->load->model('membroModel');
        $id_dfine = $this->apoioModel->getIdDiretoria('DFINE')->id;
        
        $dados['tecnologias'] = $this->apoioModel->dropdownTecnologias();
        $dados['tipos'] = $this->apoioModel->dropdownTipoProjeto();
        $dados['membros'] = $this->membroModel->getMembros();
        $dados['dfine'] = $this->membroModel->dropdownMembrosDiretoria($id_dfine);
        $dados['gerentes'] = $this->membroModel->dropdownGerentes();
        $dados['mensagem'][''] = 'Selecione o tipo de projeto...';
        
        $this->load->view('relatorio/cadastrarProjeto', $dados);
    }
    
    function cadastrandoProjeto(){
        $this->estaLogado();
        $this->load->model('apoioModel');
        $this->load->model('membroModel');
        $this->load->model('relatorioModel');
        
        $dados['nome'] = $this->input->post('nome');
        $dados['data_inicio'] = $this->input->post('data');
        $dados['prazo'] = $this->input->post('prazo');
        $dados['data_fim'] = $this->calculaDataFinal($dados['data_inicio'], $dados['prazo']);
        $dados['gerente_id'] = $this->input->post('gerente');
        $dados['dfine_id'] = $this->input->post('consultor');
        $dados['tipo'] = $this->input->post('tipo');
        $dados['preco'] = $this->input->post('preco');
        $dados['cliente_nome'] = $this->input->post('nome_cliente');
        $dados['cliente_email'] = $this->input->post('email');
        $dados['cliente_empresa'] = $this->input->post('empresa');
        $dados['cliente_tel'] = $this->input->post('tel');
        $dados['descricao'] = $this->input->post('descricao');
        $dados['cronograma'] = $this->input->post('cronograma');
        $dados['ultimo_relatorio'] = mdate('%d/%m/%Y');
        if($this->input->post('conteudo'))
            $dados['data_conteudo'] = $dados['data_inicio'];
        
        $projeto_id = $this->relatorioModel->cadastraProjeto($dados);
        
        $data = $this->geraNomePasta($projeto_id);
        mkdir($data, 0700);
        $equipe = $this->input->post('membros');
        $funcionalidades = $this->input->post('funcionalidades');
        $tecnologias = $this->input->post('tecnologias');
        
        if($equipe){
            $membro['situacao'] = 1;
            $membro['data_entrada'] = $dados['data_inicio'];
            $membro['funcao'] = 'Desenvolvedor';
            $membro['projeto_id'] = $projeto_id;
            foreach ($equipe as $integrante){
                $membro['membro_id'] = $this->relatorioModel->getMembroPeloNome($integrante)->id;
                $this->relatorioModel->adicionarMembro($membro);
            }
            
        }
        if($funcionalidades)
            $this->relatorioModel->cadastraFuncionalidadesNoProjeto($funcionalidades,$projeto_id);
        if($tecnologias)
            $this->relatorioModel->cadastraTecnologiasNoProjeto($tecnologias,$projeto_id);
        
        redirect('relatorio/visualizarProjeto/'.$projeto_id);
    }
    
    // ----------------------------------------------------
    // Funções de edição de um projeto
    function editarProjeto(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $this->load->model('membroModel');
        $this->load->model('apoioModel');
        $id = $this->uri->segment(3);
        $id_dfine = $this->apoioModel->getIdDiretoria('DFINE')->id;
        
        $dados = $this->reuneInfoProjeto($id);
        $dados['projeto'] = $this->relatorioModel->getProjeto($id);
        $dados['tipos'] = $this->apoioModel->dropdownTipoProjeto();
        $dados['dfine'] = $this->membroModel->dropdownMembrosDiretoria($id_dfine);
        $dados['gerentes'] = $this->membroModel->dropdownGerentes();
        $dados['membros'] = $this->membroModel->getMembros();
        $dados['mensagem'][''] = 'Selecione o tipo de projeto...';
        $dados['tecnologias'] = $this->relatorioModel->getTecnologiasProjeto($id);
        
        $this->load->view('relatorio/editarProjeto', $dados);
    }
    
    function editandoProjeto(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $this->load->model('membroModel');
        
        $dados['id'] = $this->input->post('id');
        $dados['nome'] = $this->input->post('nome');
        $dados['data_inicio'] = $this->input->post('data');
        $dados['data_conteudo'] = $this->input->post('data_conteudo');
        $dados['gerente_id'] = $this->input->post('gerente');
        $dados['dfine_id'] = $this->input->post('consultor');
        $dados['tipo'] = $this->input->post('tipo');
        $dados['prazo'] = $this->input->post('prazo');
        $dados['preco'] = $this->input->post('preco');
        $dados['cliente_nome'] = $this->input->post('nome_cliente');
        $dados['cliente_email'] = $this->input->post('email');
        $dados['cliente_empresa'] = $this->input->post('empresa');
        $dados['cliente_tel'] = $this->input->post('tel');
        $dados['descricao'] = $this->input->post('descricao');
        if($dados['data_conteudo'])
            $dados['data_fim'] = $this->calculaDataFinal($dados['data_conteudo'], $dados['prazo']);
        else
            $dados['data_fim'] = $this->calculaDataFinal($dados['data_inicio'], $dados['prazo']);
        
        $this->relatorioModel->editarProjeto($dados);
        
        redirect('relatorio/visualizarProjeto/'.$dados['id']);
    }
    
    function confirmarConteudo(){
        $dados['projeto_id'] = $this->uri->segment(3);
        $this->load->view('relatorio/confirmarConteudo',$dados);
    }
    
    function confirmandoConteudo(){
        $this->load->model('relatorioModel');
        
        $dados['id'] = $this->input->post('id');
        $prazo = $this->relatorioModel->getProjeto($dados['id'])->prazo;
        $dados['data_conteudo'] = $this->input->post('data');
        $dados['data_fim'] = $this->calculaDataFinal($dados['data_conteudo'], $prazo);
        $this->relatorioModel->editarProjeto($dados);
        redirect('relatorio/visualizarProjeto/'.$dados['id']);
    }
    
    function esvaziaDiretorio($dir){
	if(is_dir($dir)){
            if($handle = opendir($dir)){
                while(($file = readdir($handle)) !== false){
                    if($file != '.' && $file != '..'){
                        unlink($dir.'/'.$file);
                    }
		}
            }
	}
    }
    
    function excluirProjeto(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        
        $this->relatorioModel->excluiEquipe($id);
        $this->relatorioModel->excluiTecnologiasProjeto($id);
        $this->relatorioModel->excluiFuncionalidadesProjeto($id);
        $this->relatorioModel->excluiRelatoriosProjeto($id);
        $this->relatorioModel->excluiProjeto($id);
        $pasta = $this->geraNomePasta($id);
        $this->esvaziaDiretorio($pasta);
        rmdir($pasta);
        return true;
    }
    
    function visualizarProjeto(){
        $this->estaLogado();
        $this->load->model('apoioModel');
        $this->load->model('membroModel');
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        
        $dados = $this->reuneInfoProjeto($id);
        
        $this->load->view('relatorio/visualizarProjeto', $dados);
    }
    
    // -------------------------------------------------------------------------
    // FUNÇÕES DOS RELATÓRIOS --------------------------------------------------
    // -------------------------------------------------------------------------
    
    function tipoRelatorio($id){
        switch($id){
            case 1: return 'RIP'; break;
            case 2: return 'RA'; break;
            case 3: return 'RFP'; break;
            case 4: return 'ATA'; break;
        }
    }
    
    function gerarSaida(){
        $dados['nomeProjeto'] = $this->input->post('nomeProjeto');
        $dados['tipoRelatorio'] = $this->tipoRelatorio($this->input->post('tipoRelatorio'));
        $dados['tempo'] = $this->input->post('tempo');
        $this->load->view('relatorio/saida', $dados);
    }
    
    // 1 -> Só PDF
    // 2 -> Só DOC
    // 3 -> ambos
    function gerarRelatorio($url, $dados, $pasta){
        $extensao = $this->input->post('extensao');
        $nomeArq = $this->input->post('nomeArq');
        if(!$nomeArq)
            $nomeArq = $this->input->post('arquivo');
        
        if($extensao == 1){
            $this->load->library('mpdf');
            $this->mpdf->WriteHTML($url);
            $this->mpdf->output($nomeArq, 'D');
            $nomeArq = $nomeArq.'.pdf';
            $this->mpdf->output($pasta.'/'.$nomeArq, 'F');
        } else{
            if($extensao == 2){
                header("Content-Type: application/msword");
                header("Content-Encoding = System.Text.Encoding.Default;");
                header("Content-Disposition: attachment; filename=\"{$nomeArq}\"");
                echo $url;
                $nomeArq = $nomeArq.'.doc';
            }
        }
        return $nomeArq;
    }
    
    function gerarRIP(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $projeto_id = $this->input->post('id');
        
        $dados = $this->reuneInfoProjeto($projeto_id);
        $dados['titulo'] = 'Relatório de Início de Projeto';    
        $url = $this->load->view('relatorio/RIP', $dados, true);
        //$this->load->view('relatorio/RIP', $dados);
        
        $pasta = $this->geraNomePasta($dados['projeto']->id);
        $nomeProjeto = $this->gerarRelatorio($url, $dados, $pasta);
        $this->cadastrarRelatorio($nomeProjeto, 1, $projeto_id);
    }
    
    function gerarRA(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        
        $dados['projeto'] = $this->relatorioModel->getProjeto($id);
        $dados['contagem'] = array(''=>'-Selecione-','0'=>0,'1'=>1,'2'=>2,'3'=>3,'4'=>4,'5'=>5,'6'=>6,'7'=>7,'8'=>8,'9'=>9,'10'=>10);
        $dados['membros'] = $this->relatorioModel->getMembrosProjeto($id);
        $dados['tipoRelatorio'] = 2;
        
        $this->load->view('relatorio/gerarRA', $dados);
    }
    
    function gerandoRA(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $this->load->model('membroModel');
        $this->load->model('apoioModel');
        $dados['titulo'] = 'Relatório de Acompanhamento';
        $id = $this->input->post('id');
        
        $dados['projeto'] = $this->relatorioModel->getProjeto($id);
        $dados['projeto']->gerente = $this->membroModel->getMembro($dados['projeto']->gerente_id)->nome;
        $dados['equipe'] = $this->relatorioModel->getMembrosProjeto($id);
        foreach($dados['equipe'] as $integrante)
            $integrante->diretoria = $this->apoioModel->getDiretoria($integrante->diretoria_id)->diretoria;
        $dados['prazoRestante'] = $this->CalculaDias(mdate('%d/%m/%Y'), $dados['projeto']->data_fim);
        $dados['porcentagem'] = $this->input->post('porcentagemCrono');
        $dados['situacao'] = $this->avaliaSituacaoProjeto($dados['prazoRestante'], $dados['projeto']->prazo, $dados['porcentagem']);    
        $dados['ra_cronograma'] = $this->cronogramaRA();
        $dados['ra_equipe'] = $this->equipeRA();
        $dados['ra_cliente'] = $this->clienteRA();
        $dados['ra_dificuldade'] = $this->dificuldadesRA();
        
        $pasta = $this->geraNomePasta($dados['projeto']->id);
        $url = $this->load->view('relatorio/RA', $dados, true);
        $nomeProjeto = $this->gerarRelatorio($url, $dados, $pasta);
        $this->cadastrarRelatorio($nomeProjeto, 2, $dados['projeto']->id);
        
        $altera['id'] = $id;
        if(!$dados['projeto']->cronograma){
            $altera['cronograma'] = $this->input->post('cronogramaFeito');
            $altera['ultimo_relatorio'] = mdate('%d/%m/%Y');
        }
        $this->relatorioModel->editarProjeto($altera);
    }
    
    function finalizarProjeto(){
        $this->estaLogado();
        $this->load->model('membroModel');
        $this->load->model('relatorioModel');
        $dados['id'] = $this->uri->segment(3);
        
        $dados['membros'] = $this->membroModel->getMembrosProjeto($dados['id']);
        $dados['projeto'] = $this->relatorioModel->getProjeto($dados['id']);
        $dados['site'] = $this->relatorioModel->getIdTipo('Site')->id;
        $dados['contagem'] = array(''=>'-Selecione-','0'=>0,'1'=>1,'2'=>2,'3'=>3,'4'=>4,'5'=>5,'6'=>6,'7'=>7,'8'=>8,'9'=>9,'10'=>10);
        
        $this->load->view('relatorio/gerarRFP', $dados);        
    }
    
    function gerandoRFP(){
        $this->estaLogado();
        $this->load->model('membroModel');
        $this->load->model('relatorioModel');
        $this->load->model('apoioModel');
        
        $id = $this->input->post('id');
        $dados['projeto'] = $this->relatorioModel->getProjeto($id);
        $dados['projeto']->gerente = $this->membroModel->getMembro($dados['projeto']->gerente_id)->nome;
        $dados['projeto']->tipo = $this->apoioModel->getTipoProjeto($dados['projeto']->tipo)->tipo_projeto;
        $dados['titulo'] = 'Relatório de Fim de Projeto';
        
        $dados['sobreProjeto'] = $this->input->post('sobreProjeto');
        $dados['desafio'] =  $this->input->post('desafio');
        $dados['qualidade'] =  $this->input->post('qualidade');
        $dados['relevancia'] =  $this->input->post('relevancia');
        $nomeMembros = $this->input->post('nomeMembros');
        $notaMembros = $this->input->post('notaMembros');
        $avalMembros = $this->input->post('avalMembros');
        $assuntoLic = $this->input->post('assuntoLic');
        $comentarioLic = $this->input->post('comentarioLic');
        
        $dados['dataFinal'] = $this->input->post('fim');
        $dados['atraso'] = $this->calculaDiasUteis($dados['projeto']->data_fim,$dados['dataFinal']);
        
        $cont = count($nomeMembros);
        for($i = 0; $i < $cont; $i++){
            $novomembro = new stdClass();
            $novomembro->nome = $nomeMembros[$i];
            $novomembro->avaliacao = $avalMembros[$i];
            $novomembro->nota = $notaMembros[$i];
            $dados['membros'][] = $novomembro;
        }
        
        $cont = count($assuntoLic);
        for($i = 0; $i < $cont; $i++){
            $licoes = new stdClass();
            $licoes->assunto = $assuntoLic[$i];
            $licoes->comentario = $comentarioLic[$i];
            $dados['licoes'][] = $licoes;
        }
        
        $pasta = $this->geraNomePasta($dados['projeto']->id);
        $url = $this->load->view('relatorio/RFP', $dados, true);
        $nomeProjeto = $this->gerarRelatorio($url, $dados, $pasta);
        $this->cadastrarRelatorio($nomeProjeto, 3, $id);
        
        $altera['id'] = $dados['projeto']->id;
        $altera['finalizado'] = 1;
        $altera['atraso'] = $dados['atraso'];
        $this->relatorioModel->editaProjeto($altera);
        
    }
    
    function gerarRepo(){
        $this->estaLogado();
        $this->load->model('membroModel');
        $presidente = $this->session->userdata('id');
        
        $dados['diretoria'] = 'PO';
        $dados['membros'] = $this->membroModel->getRepo($presidente);
        $dados['dropMembros'] = $this->membroModel->dropdownRepo($presidente);
                
        $this->load->view('relatorio/gerarAta', $dados);
    }
    
    function gerarRedirex(){
        $this->estaLogado();
        $this->load->model('membroModel');
        
        $dados['diretoria'] = 'DIREX';
        $dados['membros'] = $this->membroModel->getDiretoria();
        $dados['dropMembros'] = $this->membroModel->dropdownDiretoria();
        
        $this->load->view('relatorio/gerarAta', $dados);
    }
    
    function gerarAta(){
        $this->estaLogado();
        $this->load->model('membroModel');
        $this->load->model('apoioModel');
        $diretoria = $this->session->userdata('diretoria_id');
        $cargo = $this->session->userdata('cargo_id');
        $nomeCargo = $this->apoioModel->getCargo($cargo)->cargo;
        
        if($nomeCargo == 'Coordenador'){
            $dados['diretoria'] = 'COORD';
            $dados['membros'] = $this->membroModel->getGerentes();
            $dados['dropMembros'] = $this->membroModel->dropdownGerentes();
        }else{
            $dados['diretoria'] = $this->apoioModel->getDiretoria($diretoria)->diretoria;
            $dados['membros'] = $this->membroModel->getMembrosDiretoria($diretoria);
            $dados['dropMembros'] = $this->membroModel->dropdownMembrosDiretoria($diretoria);
        }
        
        $this->load->view('relatorio/gerarAta', $dados);
    }
    
    function gerandoAta(){
        $this->estaLogado();
        $this->load->model('membroModel');
        
        $tarefas = $this->agrupaTarefas();
        $dados['membros'] = $this->agrupaMembrosAta($tarefas);
        $dados['pautas'] = $this->agrupaPautas();
        $dados['titulo'] = 'Ata de Reunião - '.$this->input->post('titulo');
        $dados['tempo'] = $this->input->post('tempo');
        $dados['relator'] = $this->input->post('relator');
        $dados['data'] = $this->input->post('data');
        $dados['relator'] = $this->membroModel->getMembro($this->input->post('relator'))->nome;
        
        //Tratamento de excessões
        if($tarefas)
            $dados['temTarefas'] = 1;
        else
            $dados['temTarefas'] = 0;
        
        if($this->input->post('enviaEmail'))
            $this->enviaEmailMembros($dados['membros']);
        
        $pasta = $this->geraNomePasta();
        //$this->load->view('relatorio/ata', $dados);
        $url = $this->load->view('relatorio/ata', $dados, true);
        $nome = $this->gerarRelatorio($url, $dados, $pasta);
        $this->cadastraAta($nome);
    }
    
    function gerarWiki(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        $cont = 0;
        
        $dados = $this->reuneInfoProjeto($id);
        $dados['relatorios'] = $this->relatorioModel->getRelatoriosProjeto($id);
        foreach($dados['relatorios'] as $relatorio){
            switch ($relatorio->tipo){
                case '1': $relatorio->tipo = 'RIP'; break;
                case '2': 
                    $cont++;
                    $relatorio->tipo = 'RA'.$cont;
                break;
                case '3': $relatorio->tipo = RFP; break;
            }
        }
        
        $this->load->view('relatorio/wiki', $dados);
    }
    // -------------------------------------------------------------------------
    // -------------------------------------------------------------------------
    // FUNÇÕES AUXILIARES PARA AJUSTAR A ATA -----------------------------------
    // -------------------------------------------------------------------------
    // -------------------------------------------------------------------------
    
    function agrupaTarefas(){
        $this->load->model('membroModel');
        
        // MONTAGEM DO VETOR DE OBJETOS DAS TAREFAS
        $nomeTarefa = $this->input->post('nomeTarefa');
        $descTarefa = $this->input->post('descTarefa');
        $membroTarefa = $this->input->post('membroTarefa');
        $prazoTarefa = $this->input->post('prazoTarefa');
        if($nomeTarefa[0] != ''){
            $cont = count($nomeTarefa);
            $dados['temTarefas'] = 1;
            for($i = 0; $i < $cont; $i++){
                $tarefa = new stdClass();
                $tarefa->nome = $nomeTarefa[$i];
                $tarefa->descricao = nl2br($descTarefa[$i]);
                $tarefa->responsavel = $this->membroModel->getMembro($membroTarefa[$i])->nome;
                $tarefa->prazo = $prazoTarefa[$i];
                $tarefas[] = $tarefa;
            }
        } else
            $tarefas = null;
        return $tarefas;
    }
    
    function agrupaMembrosAta($tarefas){
        //MONTAGEM DO VETOR DOS MEMBROS DA REUNIAO
        $ids = $this->input->post('membroIds');
        $nomes = $this->input->post('membros');
        $presenca = $this->input->post('status');
        $justificado = $this->input->post('justificado');
        
        $cont = count($nomes);
        for($i=0; $i < $cont; $i++){
            $membro = new stdClass();
            $membro->id = $ids[$i];
            $membro->nome = $nomes[$i];
            $membro->presenca = $presenca[$i];
            if((isset($justificado[$i])) && ($justificado[$i]) && ($presenca[$i] != 'Presente'))
                $membro->presenca .= ' justificada';
            // AJUSTE DE TAREFAS POR MEMBRO
            if($tarefas){
                foreach($tarefas as $tarefa){
                    $novaTarefa = new stdClass();
                    if($tarefa->responsavel == $membro->nome){
                        $novaTarefa->nome = $tarefa->nome;
                        $novaTarefa->descricao = $tarefa->descricao;
                        $novaTarefa->prazo = $tarefa->prazo;
                        $membro->tarefas[] = $novaTarefa;
                    }
                }
            }
            $resultado[] = $membro;
        }
        return $resultado;
    }
    
    function agrupaPautas(){
        $pautas = $this->input->post('pautas');
        $temas = $this->input->post('temas');
        $tempos = $this->input->post('temp');
        $cont = count($temas);
        for($i = 0; $i < $cont; $i++){
            $pauta = new stdClass();
            $pauta->assunto = $temas[$i];
            $pauta->duracao = $tempos[$i].' minutos';
            $pauta->comentario = nl2br($pautas[$i]);
            $resultado[] = $pauta;
        }
        return $resultado;
    }
    
    // -------------------------------------------------------------------------
    // FUNCOES DE EMAIL --------------------------------------------------------
    // -------------------------------------------------------------------------
    
    function enviaEmail($membro){
        $this->load->model('membroModel');
        $this->load->model('apoioModel');
        
        $this->load->library('email');
        $emailMembro = $this->membroModel->getMembro($membro->id)->email;
        $nome = substr($membro->nome, 0, strripos($membro->nome, ' '));
        $tarefas = '';
        foreach($membro->tarefas as $tarefa)
            $tarefas .= '<b>- '.$tarefa->nome.'</b>: '.$tarefa->descricao.' (Prazo: '.$tarefa->prazo.')<br>';
        
        $this->email->from('felipekss@gmail.com','E-mail de Diretoria');
        $this->email->to($emailMembro);
        //$this->email->to('felipekss@gmail.com');
        $this->email->subject('[IMPORTANTE]Tarefas da Semana');
        $this->email->message('
            Olá '.$nome.',<br><br> Abaixo seguem suas tarefas relativas a última reunião realizada. 
            Estas tarefas são relativas a data de '.mdate('%d/%m/%Y').'.<br><br>'.
                $tarefas.'
            <br><br>E-mail enviado pelo GERRE.
        ');
        
        $this->email->send();
    }
    
    function enviaEmailMembros($membros){
        foreach($membros as $membro){
            if(isset($membro->tarefas))
                $this->enviaEmail($membro);
        }
    }
    
    // -------------------------------------------------------------------------
    // FUNCOES DE DOWNLOAD -----------------------------------------------------
    // -------------------------------------------------------------------------
    
    function geraNomePasta($projeto = null){
        if($projeto)
            return FCPATH.'public/arquivos/relatorios/'.$projeto;
        else
            return FCPATH.'public/arquivos/atas/'.$this->session->userdata('diretoria_id');
    }
    
    function renomearArquivo($antigo, $novo, $projeto = null){
        $pasta = $this->geraNomePasta($projeto);
        rename($pasta.'/'.$antigo, $pasta.'/'.$novo);
    }
    
    function upload($nome, $up){
        $config['upload_path'] = $this->geraNomePasta();
        $config['file_name'] = $nome;
        $this->load->library('upload', $config);
        $this->upload->do_upload($up);
        $this->upload->data($up); die();
    }
    
    function download(){
        $this->load->helper('download');
        // TIPO === 1 -> Relatorio; 2 -> Ata
        $tipo = $this->uri->segment(3);
        $pasta_id = $this->uri->segment(4);
        $arq_id = $this->uri->segment(5);
        $this->load->model('relatorioModel');
        
        if($tipo == 1){
            $pasta = $this->geraNomePasta($pasta_id);
            $arquivo = $this->relatorioModel->getRelatorio($arq_id)->nome;
        }else{
            $pasta = FCPATH.'public/arquivos/atas/'.$pasta_id;
            $arquivo = $this->relatorioModel->getAta($arq_id)->nome;
        }
        
        $data = file_get_contents($pasta.'/'.$arquivo);
        force_download($arquivo, $data);
    }
    
    // ------------------------------------------------------------------------
    // Funcao que gera submenus e suas ações ----------------------------------
    // ------------------------------------------------------------------------
    
    function geraSubmenuAtas(){
        $this->load->model('apoioModel');
        $dados['diretorias'] = $this->apoioModel->getDiretorias();
        
        $this->load->view('submenus/atasDiretorias', $dados);
    }
    
    function getAtas(){
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        $dados['diretoriaAtual'] = $id;
        $dados['atas'] = $this->relatorioModel->getAtasDiretoria($id);
        $this->load->view('relatorio/listarAtas',$dados);
    }
    
    
    // ------------------------------------------------------------------------
    // FUNCOES DE CADASTRO E EXCLUSAO DOS RELATORIOS --------------------------
    // ------------------------------------------------------------------------
    
    function getRelatoriosProjeto(){
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        
        $dados['relatorios'] = $this->relatorioModel->getRelatoriosProjeto($id);
        foreach($dados['relatorios'] as $relatorio){
            switch ($relatorio->tipo){
                case 1: $relatorio->tipo = 'RIP'; break;
                case 2: $relatorio->tipo = 'RA'; break;
                case 3: $relatorio->tipo = 'RFP'; break;
            }
        }
        $this->load->view('submenus/relatorios', $dados);
    }
    
    function cadastrarRelatorio($nome, $tipo, $id){
        $this->load->model('relatorioModel');
        
        $relatorio['nome'] = $nome;
        $relatorio['tipo'] = $tipo;
        $relatorio['data'] = mdate('%d/%m/%Y');
        $relatorio['projeto_id'] = $id;
        $antigo = $this->relatorioModel->getIdRelatorioAntigo($tipo, $id)->id;
        if($antigo)
            $this->relatorioModel->excluiRelatorio($antigo);
        $this->relatorioModel->cadastraRelatorio($relatorio);
    }
    
    function excluiRelatorio(){
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        
        $this->relatorioModel->excluiRelatorio($id);
        return true;
    }
    
    function listarAtas(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        
        $this->load->view('relatorio/atas');
    }
    
    function cadastraAta($nome){
        $this->load->model('relatorioModel');
        $dados['nome'] = $nome;
        $dados['data'] = mdate('%d/%m/%Y');
        $dados['diretoria_id'] = $this->session->userdata('diretoria_id');
        $dados['cargo_id'] = $this->session->userdata('cargo_id');
        $antiga = $this->relatorioModel->getIdAtaAntiga($dados['diretoria_id'], $dados['cargo_id'], $dados['data'])->id;
        // CHECA SE JA EXISTE UMA ATA IGUAL E A DELETA PARA DAR LUGAR A NOVA
        if($antiga)
            $this->relatorioModel->excluiAta($antiga);
        $this->relatorioModel->cadastraAta($dados);
    }
    
    function retiraExtensaoArquivo($nome){
        $fim = strpos($nome, '.pdf');
        return substr($nome ,0, $fim);
    }
    
    function editarAta(){
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        
        $dados['ata'] = $this->relatorioModel->getAta($id);
        $dados['ata']->nome = $this->retiraExtensaoArquivo($dados['ata']->nome);
        
        $this->load->view('relatorio/editarAta',$dados);
    }
    
    function editandoAta(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
       
        $original = $this->input->post('nomeOriginal').'.pdf';
        $dados['id'] = $this->input->post('id');
        $dados['nome'] = $this->input->post('nome').'.pdf';
        $dados['data'] = $this->input->post('data');
        $this->renomearArquivo($original, $dados['nome']);
        $this->relatorioModel->editarAta($dados);
        if($this->input->post('novoArquivo'))
            $this->upload($dados['nome'], $this->input->post('arquivo'));
 
        redirect('relatorio/listarAtas');
    }
    
    function excluiAta(){
        $this->load->model('relatorioModel');
        $id = $this->uri->segment(3);
        
        $nome = $this->relatorioModel->excluiAta($id);
        $pasta = $this->geraNomePasta();
        unlink($pasta.'/'.$nome);
        return true;
    }
    
    // -------------------------------------------------------------------------
    // -------------------------------------------------------------------------
    // FUNÇÕES AUXILIARES PARA AJUSTAR O PROJETO -------------------------------
    // -------------------------------------------------------------------------
    // -------------------------------------------------------------------------
    
    function reuneInfoProjeto($id){
        $this->load->model('apoioModel');
        $this->load->model('membroModel');
        $this->load->model('relatorioModel');
        $dados['projeto'] = $this->relatorioModel->getProjeto($id);
        $dados['projeto']->tipo = $this->apoioModel->getTipoProjeto($dados['projeto']->tipo)->tipo_projeto;
        $dados['projeto']->gerente = $this->membroModel->getMembro($dados['projeto']->gerente_id)->nome;
        $dados['projeto']->dfine = $this->membroModel->getMembro($dados['projeto']->dfine_id)->nome;
        if($dados['projeto']->data_conteudo)
            $dados['projeto']->conteudo = 'Entregue ('.$dados["projeto"]->data_conteudo.')';
        else
            $dados['projeto']->conteudo = 'Não entregue';
        
        if($dados['projeto']->cronograma)
            $dados['projeto']->cronograma = 'Feito';
        else
            $dados['projeto']->cronograma = 'Não feito';
        
        $dados['equipe'] = $this->relatorioModel->getMembrosProjeto($id);
        foreach($dados['equipe'] as $integrante){
            $integrante->diretoria = $this->apoioModel->getDiretoria($integrante->diretoria_id)->diretoria;
            if($integrante->situacao)
                $integrante->situacao = 'Presente';
            else
                $integrante->situação = 'Fora';
        }
        
        $dados['funcionalidades'] = $this->relatorioModel->getFuncionalidadesProjeto($id);
        $dados['rip'] = $this->relatorioModel->getRIP($id);
        $dados['ras'] = $this->relatorioModel->getRA($id);
        $dados['rfp'] = $this->relatorioModel->getRFP($id);
        
        $i = 1;
        $vetor = $this->relatorioModel->getTecnologiasProjeto($id);
        $cont = count($vetor);
        for($i = 0; $i < $cont; $i++){
            if(($i == 0)||($cont == 1))
                $tecnologias = ' '.$vetor[$i]->tecnologia;
            else{
                if($i == $cont - 1)
                    $tecnologias .= ' e '.$vetor[$i]->tecnologia;
                else
                    $tecnologias .= ', '.$vetor[$i]->tecnologia;
            }        
        }
        $dados['tecnologias'] = $tecnologias;
        
        return $dados;
    }
    
    function adicionarMembro(){
        $this->load->model('membroModel');
        $dados['projeto_id'] = $this->uri->segment(3);
        $dados['dropMembros'] = $this->membroModel->dropdownMembros();
        
        $this->load->view('relatorio/adicionarMembro',$dados);
    }
    
    function adicionandoMembro(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        
        $dados['projeto_id'] = $this->input->post('id');
        $dados['membro_id'] = $this->input->post('membro');
        $dados['funcao'] = $this->input->post('funcao');
        $dados['data_entrada'] = $this->input->post('data');
        $dados['situacao'] = '1';
        $this->relatorioModel->adicionarMembro($dados);
        
        redirect('relatorio/editarProjeto/'.$dados['projeto_id']);
    }
    
    function retirarMembro(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $projeto_id = $this->uri->segment(3);
        $membro_id = $this->uri->segment(4);
        
        $this->relatorioModel->retiraMembro($projeto_id, $membro_id);
        return true;
    }
    
    function adicionarTecnologia(){
        $this->load->model('apoioModel');
        $dados['projeto_id'] = $this->uri->segment(3);
        $dados['dropTec'] = $this->apoioModel->dropdownTecnologias();
        
        $this->load->view('relatorio/adicionarTecnologia',$dados);
    }
    
    function adicionandoTecnologia(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        
        $dados['projeto_id'] = $this->input->post('id');
        $dados['tecnologia_id'] = $this->input->post('tecnologia');
        $this->relatorioModel->adicionarTecnologia($dados);
        
        redirect('relatorio/editarProjeto/'.$dados['projeto_id']);
    }
    
    function retirarTecnologia(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $projeto_id = $this->uri->segment(3);
        $tec_id = $this->uri->segment(4);
        
        $this->relatorioModel->retiraTecnologia($projeto_id, $tec_id);
        return true;
    }
    
    function adicionarFuncionalidade(){
        $this->load->model('apoioModel');
        $this->load->model('relatorioModel');
        $dados['projeto_id'] = $this->uri->segment(3);
        $tipo = $this->relatorioModel->getProjeto($dados['projeto_id'])->tipo;
        $dados['dropFunc'] = $this->apoioModel->dropFuncionalidadesTipo($tipo);
        
        $this->load->view('relatorio/adicionarFuncionalidade',$dados);
    }
    
    function adicionandoFuncionalidade(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        
        $dados['projeto_id'] = $this->input->post('id');
        $dados['funcionalidade_id'] = $this->input->post('funcionalidade');
        $this->relatorioModel->adicionarFuncionalidade($dados);
        
        redirect('relatorio/editarProjeto/'.$dados['projeto_id']);
    }
    
    function retirarFuncionalidade(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $projeto_id = $this->uri->segment(3);
        $func_id = $this->uri->segment(4);
        
        $this->relatorioModel->retiraFuncionalidade($projeto_id, $func_id);
        return true;
    }
    
    // ----------------------------------------------------
    // ----------------------------------------------------
    
    // ----------------------------------------------------------------
    // ------- FUNÇÕES AUXILIARES -------------------------------------
    
    function dataUS($data){
	if (!empty($data)){
            $p_dt = explode('/',$data);
            $data_sql = $p_dt[2].'-'.$p_dt[1].'-'.$p_dt[0];
            return $data_sql;
	}
    }
    
    function somaData($data, $dias){
        list($ano, $mes, $dia) = explode('-', $data);
        return mktime(0, 0, 0, $mes, $dia + $dias, $ano);
    }
    
    //ACHA A DATA FINAL SOMANDO UM PRAZO A UMA DATA INICIAL (já considera os dias úteis)
    function calculaDataFinal($data, $dias) {
        $data = substr($data,0,10);
        if ( preg_match("@/@",$data) == 1 ){
            $data = implode("-", array_reverse(explode("/",$data)));
        }
        $array_data = explode('-', $data);
        $count_days = 0;
        $int_qtd_dias_uteis = 0;
        while ($int_qtd_dias_uteis < $dias){
            $count_days++;
            if (($dias_da_semana = gmdate('w', strtotime('+'.$count_days.' day', mktime(0, 0, 0, $array_data[1], $array_data[2], $array_data[0])))) != '0' && $dias_da_semana != '6'){
               $int_qtd_dias_uteis++;
            }
        }
        return gmdate('d/m/Y',strtotime('+'.$count_days.' day',strtotime($data)));
    }
    
    //CALCULA DIAS ENTRE DUAS DATAS (dias corridos)
    function CalculaDias($xDataInicial, $xDataFinal){
        $time1 = $this->dataToTimestamp($xDataInicial);  
        $time2 = $this->dataToTimestamp($xDataFinal);  

        $tMaior = $time1>$time2 ? $time1 : $time2;  
        $tMenor = $time1<$time2 ? $time1 : $time2;  

        $diff = $tMaior-$tMenor;  
        $numDias = $diff/86400; //86400 é o número de segundos que 1 dia possui  
        return $numDias;
    }

    //FORMATA COMO TIMESTAMP
    function dataToTimestamp($data){
        $ano = substr($data, 6,4);
        $mes = substr($data, 3,2);
        $dia = substr($data, 0,2);
        return mktime(0, 0, 0, $mes, $dia, $ano);  
    }
    
    function avaliaSituacaoProjeto($diasFaltando, $prazo, $feito){
        $corrido = 100 - ($diasFaltando/$prazo)*100;
        
        if(($corrido >= 0) && ($corrido >= 25))
            $corrido = 1;
        else{
            if(($corrido >= 26) && ($corrido >= 50))
                $corrido = 2;
            else{
                if(($corrido >= 51) && ($corrido >= 75))
                    $corrido = 3;
                else
                    $corrido = 4;
            }
        }
        
        if($corrido <= $feito)
            return "OK";
        else{
            if($corrido == $feito + 1)
                return "Leve atraso";
            else{
                if ($corrido > $feito + 1)
                    return "Crítico";
            }
        }
    }
    
    function Feriados($ano,$posicao){
        $dia = 86400;
        $datas = array();
        $datas['pascoa'] = easter_date($ano);
        $datas['sexta_santa'] = $datas['pascoa'] - (2 * $dia);
        $datas['carnaval'] = $datas['pascoa'] - (47 * $dia);
        $datas['corpus_cristi'] = $datas['pascoa'] + (60 * $dia);
        $feriados = array (
           '01/01',
           date('d/m',$datas['carnaval']),
           date('d/m',$datas['sexta_santa']),
           date('d/m',$datas['pascoa']),
           '21/04',
           '01/05',
           date('d/m',$datas['corpus_cristi']),
           '12/10',
           '02/11',
           '15/11',
           '25/12',
        );

        return $feriados[$posicao]."/".$ano;
    }

    function Soma1dia($data){   
       $ano = substr($data, 6,4);
        $mes = substr($data, 3,2);
        $dia = substr($data, 0,2);
        return   date("d/m/Y", mktime(0, 0, 0, $mes, $dia+1, $ano));
    }

    //CALCULA DIAS UTEIS
    function calculaDiasUteis($yDataInicial,$yDataFinal){

        $diaFDS = 0; //dias não úteis(Sábado=6 Domingo=0)
        $calculoDias = $this->CalculaDias($yDataInicial, $yDataFinal); //número de dias entre a data inicial e a final
        $diasUteis = 0;

        while($yDataInicial!=$yDataFinal){
            $diaSemana = date("w", $this->dataToTimestamp($yDataInicial));
            if($diaSemana==0 || $diaSemana==6){
                //se SABADO OU DOMINGO, SOMA 01
                $diaFDS++;
            }else{
                //senão vemos se este dia é FERIADO
                for($i=0; $i<=10; $i++){
                    if($yDataInicial == $this->Feriados(date("Y"),$i)){
                    $diaFDS++;   
                }
             }
          }
          $yDataInicial = $this->Soma1dia($yDataInicial); //dia + 1
        }
        return $calculoDias - $diaFDS;
    }
    
    
    // ----------------------------------------------------------------
    // ----------------------------------------------------------------
    // FUNCOES QUE RETORNAM OS TEXTOS DE SAIDA DO RA ------------------
    // ----------------------------------------------------------------
    // ----------------------------------------------------------------
    
    // -------------------------------------------------------------
    //----------- Sobre o cronograma -------------------------------
    function cronogramaRA(){
        $feito = $this->input->post('cronogramaFeito');
        $seguido = $this->input->post('seguido');
        $alteracao = $this->input->post('alteracao');
        $atraso = $this->input->post('atraso');
        $comprometeu = $this->input->post('comprometeu');
        $reincidente = $this->input->post('reincidente');
        $solucionado = $this->input->post('solucionado');
        $atrasoMembro = $this->input->post('atrasoMembro');
        $atrasos = $this->input->post('atrasoDesc');
        $comentarios = $this->input->post('cronogramaDesc');
        
        if($feito == 0)
            $texto = 'O cronograma ainda não foi feito.';
        else{
            $texto = 'O cronograma foi feito';
            
            if($seguido == 0)
                $texto .= ', porém não está sendo seguido conforme último planejamento.';
            else
                $texto .= ' e está sendo seguido conforme último planejamento.';
            
            if($alteracao == 0)
                $texto .= ' O cronograma não sofreu nenhuma alteração.';
            else
                $texto .= ' O cronograma sofreu alterações, as quais foram:<br>';
                $texto .= $this->input->post('cronogramaAltera');
        }
        if($atraso == 0)
            $texto .= '<br>Não houve nenhum atraso significativo no projeto.';
        else{
            $texto .= '<br>O projetou sofreu atrasos';
            
            if($comprometeu == 0){
                if($reincidente == 0)
                    $texto .= ', porém não comprometeram o projeto e nem se mostraram repetitivos.';
                else
                    $texto .= ', os quais mesmo sendo repetitivos, não trouxeram prejuízos ao projeto.';
            }
            else{
                if($reincidente == 0)
                    $texto .= ', que mesmo não sendo reincidentes, causaram prejuízos.';
                else
                    $texto .= ', sendo eles repetitivos e prejudicando o andamento do mesmo.';
            }
            
            if(!$solucionado)
                $texto .= ' Os mesmo ainda não foram solucionados ou compensados.';
            else
                $texto .= ' Entretanto, os mesmo já foram solucionados e compensados.';
        }
        
        if($atrasoMembro){
            $cont = count($atrasoMembro);
            $texto .= '<br>Os seguintes membros atrasaram em suas tarefas:';
            for($i = 0; $i < $cont; $i++){
                if(($i == 0)||($cont == 1))
                    $texto .= ' '.$atrasoMembro[$i];
                else{
                    if($i == $cont - 1)
                        $texto .= ' e '.$atrasoMembro[$i];
                    else
                        $texto .= ', '.$atrasoMembro[$i];
                }        
            }
        }
        
        if($atrasos)
            $texto .= ' <br><br>Os atrasos foram: '.$atrasos;
        
        if($comentarios)
            $texto .= '<br>'.$comentarios;
        
        return $texto;
    }
    
    // -------------------------------------------------------------
    //----------- Sobre o equipe -----------------------------------
    function equipeRA(){
        $contatoEquipe = $this->input->post('contatoEquipe');
        $emails = $this->input->post('emails');
        $nEmails = $this->input->post('nEmails');
        $membroEmail = $this->input->post('membroEmail');
        $contatoDireto = $this->input->post('contatoDireto');
        $nCode = $this->input->post('nCode');
        $notaCode = $this->input->post('notaCode');
        $caraterCode = $this->input->post('caraterCode');
        $faltaCode = $this->input->post('faltaCode');
        $tarefasMeio = $this->input->post('tarefasMeio');
        $motivada = $this->input->post('motivada');
        $eqDificuldade = $this->input->post('eqDificuldade');
        $geralEquipe = $this->input->post('geralEquipe');
        
        $texto = 'Quanto a equipe, o contato da mesma com o gerente está '.$contatoEquipe.',';
        
        $texto .= ' visto que ela tende '.$emails.' responder aos e-mails recebidos,';
        $texto .= ' ao passo que o gerente estabelece uma média de '.$nEmails.' e-mails enviados para e equipe semanalmente.';
        
        if(!$contatoDireto)
            $texto .=' O gerente não necessita intervir diretamente com os desenvolvedores para obter suas respostas.';
        else
            $texto .= ' Ainda, para a equipe responder as tentativas de contato o gerente tem que lançar mão de contato direto com os desenvolvedores.';
        
        if($membroEmail){
            $cont = count($membroEmail);
            if($cont == 1)
                $texto .= ' O seguinte membro não apresentou comprometimento nas respostas de e-mails:';
            else
                $texto .= ' Os seguintes membros não apresentaram comprometimento nas respostas de e-mails:';
            for($i = 0; $i < $cont; $i++){
                if(($i == 0)||($cont == 1))
                    $texto .= ' '.$membroEmail[$i];
                else{
                    if($i == $cont - 1)
                        $texto .= ' e '.$membroEmail[$i];
                    else
                        $texto .= ', '.$membroEmail[$i];
                }        
            }
        }
        
        $texto .= ' <br>Desde o último relatório, foram realizados '.$nCode.' codemeetings, os quais vieram apresentando uma qualidade '.$notaCode;
        
        if($caraterCode)
            $texto .= ', tendo em vista que eles vem sendo utilizados '.$caraterCode;
        
        if(!$faltaCode)
            $texto .= '. Nenhum membro apresentou falta nos codemeetings.<br>';
        else{
            $texto .= '. Houve faltas em codemeetings pelos seguintes membros e motivos:<br>';
            $membrosCode = $this->input->post('membrosCode');
            $motivoFalta = $this->input->post('motivoFalta');
            
            $i = 0;
            foreach($motivoFalta as $motivo){
                if($motivo){
                    $membrosCode[$i] = '- '.$membrosCode[$i].': '.$motivo.'<br>';
                    $i++;
                }
            }
            
            foreach($membrosCode as $membro)
                $texto .= $membro;
        }
        
        $texto .= 'As tarefas estão sendo passadas para a equipe '.$tarefasMeio.'. ';
        
        if(!$motivada){
            $texto .= 'A equipe não parece estar muito motivada para finalizar o projeto';
            if(!$eqDificuldade)
                $texto .= ', mesmo não apresentando dificuldades durante o mesmo.';
            else
                $texto .= ' e ainda está lidando com dificuldades ao longo do mesmo.';
        } else{
            $texto .= 'A equipe está motivada para finalizar o projeto';
            if(!$eqDificuldade)
                $texto .= ', não apresentando dificuldades durante o mesmo.';
            else
                $texto .= ' porém, está com dificuldades durante a execução do mesmo.';
        }
        
        if($geralEquipe)
            $texto .= '<br>'.$geralEquipe;        
        
        return $texto;
    }
    
    // -------------------------------------------------------------
    //----------- Sobre o cliente ----------------------------------
    function clienteRA(){
        $chaveCliente = $this->input->post('chaveCliente');
        $clienteContato = $this->input->post('clienteContato');
        $gerenteContato = $this->input->post('gerenteContato');
        $resposta = $this->input->post('resposta');
        $acompanhando = $this->input->post('acompanhando');
        $gostar = $this->input->post('gostar');
        $feedCliente = $this->input->post('feedCliente');
        $feedGerente = $this->input->post('feedGerente');
        $alteracoes = $this->input->post('alteracoes');
        $viaveis = $this->input->post('gostar');
        
        $texto = 'Em termos de comunicação, a média de comunicação do gerente com o cliente é '.$this->input->post('contatoMedia');
        if(!$clienteContato){
            $texto .= '. O cliente não costuma a ter muito contato com a empresa';
            if(!$gerenteContato)
                $texto .= ' ao passo que o gerente também não está tentando ter um contato regular com o mesmo.';
            else 
                $texto .= ', mesmo com o gerente sempre tentando fazer contato com o mesmo.';
        } else{
            $texto = '. O cliente está tendo um bom contato com a empresa';
            if(!$gerenteContato)
                $texto .= ', mesmo o gerente não procurar muito este contato.';
            else 
                $texto .= ', assim como o gerente também está procurando este contato.';
        }
        $texto .= ' O gerente diz ter uma média de '.$this->input->post('numContato').' ocasiões de contato com o cliente';
        $texto .= ' e nas tentativas de contato o cliente '.$this->input->post('resposta').' responde.';
        
        if($chaveCliente)
            $texto .= ' O gerente classificou o cliente como um cliente '.$chaveCliente;
        
        if(!$acompanhando){
            $texto .= '<br>O cliente não está acompanhando o projeto devidamente';
            $texto .= ', mas mesmo assim diz/aparenta '.$gostar.' do projeto.';
            
        } else{
            $texto .= '<br>O cliente está acompanhando ativamente o projeto';
            $texto .= ' e diz/aparenta '.$gostar.' do resultado até então.';
            
        }
        
        if(!$feedGerente){
            $texto .= ' O gerente não está pedindo feedbacks ao cliente';
            if(!$feedCliente)
                $texto .= ', dessa forma, não tendo nenhuma resposta do mesmo.';
            else{
                $texto .= ', mas mesmo assim o mesmo chegou a passar pareceres ao gerente.';
                $texto .= '<br>O feedback foi: '.$this->input->post('opniao');
            }
        }else{
            $texto .= ' O gerente está pedindo feedbacks ao cliente';
            if(!$feedCliente)
                $texto .= ' porém, estes não estão sendo recebidos.';
            else
                $texto .= ' e este está passando seus feedbacks sobre o projeto.';
                $texto .= '<br>O feedback foi: '.$this->input->post('opiniao');
        }
        
        if(!$alteracoes)
            $texto .= '<br>O cliente até então não pediu alterações.';
        else{
            $texto .= '<br>O cliente pediu alterações, sendo que '.$this->input->post('viaveis').'<br>';
            $texto .= 'Sobre as alterações: '.$this->input->post('listaAlteracoes');
        }
        
        if($this->input->post('geralCliente'))
            $texto .= '<br>'.$this->input->post('geralCliente');        
        
        return $texto;
    }

    // -------------------------------------------------------------
    //----------- Sobre as dificuldades ----------------------------    
    function dificuldadesRA(){
        $dificuldade = $this->input->post('dificuldade');
        $difiSignificativa = $this->input->post('difiSignificativa');
        $geralDificuldade = $this->input->post('geralDificuldade');
        
        $texto = 'O projeto vem apresentando um grau de dificuldade '.$dificuldade;
        if(!$difiSignificativa)
            $texto .= ', sendo que não houve nenhuma dificuldade significativa.';
        else{
            $texto .= ', ao passo que houve dificuldades significativas';
            $sanada = $this->input->post('sanada');
            
            if(!$sanada)
                $texto .= ', que ainda não foram resolvidas.';
            else{
                $texto .= '. Porém, estas já foram sanadas';
                $ajudaSolucao = $this->input->post('ajudaSolucao');
                
                if(!$ajudaSolucao)
                    $texto .= ' não precisando de ajuda externa.';
                else{
                    $texto .= ' através de ajuda externa, que foi: ';
                    
                    $meioAjuda = $this->input->post('meioAjuda');
                    $cont = count($meioAjuda);
                    for($i = 0; $i < $cont; $i++){
                        if(($i == 0)||($cont == 1))
                            $texto .= ' '.$meioAjuda[$i];
                        else{
                            if($i == $cont - 1)
                                $texto .= ' e '.$meioAjuda[$i];
                            else
                                $texto .= ', '.$meioAjuda[$i];
                        }        
                    }
                }
            }
        }
        
        if($geralDificuldade)
            $texto .= '<br>'.$geralDificuldade;
        
        return $texto;
    }
}
?>